package com.twb.message.service;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import com.twb.auth.entity.twbUser.dto.TwbUserDto;
import com.twb.core.base.entity.TwbPageInfo;
import com.twb.core.base.service.IBaseService;
import com.twb.message.entity.messageReceivor.MessageReceivor;
import com.twb.message.entity.messageReceivor.dto.SearchMessageReceivorDto;
import com.twb.message.entity.messageReceivor.vo.SaveMessageReceivorVo;
import com.twb.message.entity.messageReceivor.vo.SearchMessageReceivorVo;
import com.twb.message.entity.messageReceivor.vo.UpdateMessageReceivorByIdVo;

/** 
 * @ClassName IMessageReceivorService 
 * @Description 系统消息接收人信息 service接口
 
 * @author DHL
 * @date 2021-07-14 09:27:31 
 */ 
public interface IMessageReceivorService extends IBaseService<MessageReceivor> {

	/**
	 * @Title  searchMessageReceivor
	 * @Description 分页查询
	 * @param vo
	 * @return
	 * @author DHL
	 * @date 2021-07-14 09:27:31
	 */
	public TwbPageInfo<SearchMessageReceivorDto> searchMessageReceivor(SearchMessageReceivorVo vo);
	
	/**
	 * @Title  searchMessageReceivor
	 * @Description 查询集合
	 * @param vo
	 * @return
	 * @author DHL
	 * @date 2021-07-14 09:27:31
	 */
	public List<SearchMessageReceivorDto> searchMessageReceivorList(SearchMessageReceivorVo vo);

	/**
	 * @Title  saveMessageReceivor
	 * @Description 保存信息
	 * @param vo
	 * @return
	 * @author DHL
	 * @date 2021-07-14 09:27:31
	 */
	public boolean saveMessageReceivor(SaveMessageReceivorVo vo);

	/**
	 * @Title  updateMessageReceivorById
	 * @Description 更新信息
	 * @param vo
	 * @return
	 * @author DHL
	 * @date 2021-07-14 09:27:31
	 */
	public boolean updateMessageReceivorById(UpdateMessageReceivorByIdVo vo);

	/**
	 * @Title  deleteMessageReceivorById
	 * @Description 删除信息
	 * @param id
	 * @return
	 * @author DHL
	 * @date 2021-07-14 09:27:31
	 */
	public boolean deleteMessageReceivorById(String id);
	/**
	 * @Title  deleteMessageReceivorByIds
	 * @Description 批量删除信息
	 * @param ids
	 * @return
	 * @author DHL
	 * @date 2021-07-14 09:27:31
	 */
	public boolean deleteMessageReceivorByIds(String ids);
	
	/**
	 * @Title  logicBatchDeleteMessageReceivorByIds
	 * @Description 批量逻辑删除
	 * @param ids
	 * @return
	 * @author DHL
	 * @date 2021-07-14 09:27:31
	 */
	public int logicBatchDeleteMessageReceivorByIds(String ids);
	/**
	 * @Title  exportExcel
	 * @Description 导出excel
	 * @param exportExcelVo
	 * @param searchVo
	 * @return
	 * @author DHL
	 * @date 2021-07-14 09:27:31
	 */
	public void exportExcel(SearchMessageReceivorVo vo, HttpServletResponse response) throws Exception;
	
	/**
	 * @Title  importExcel
	 * @Description 导入excel
	 * @param map
	 * @return
	 * @author DHL
	 * @date 2021-07-14 09:27:31
	 */
	public int importExcel(Map<String, String> map);

	/**
	 * @Title SearchMessageReceivorUsers
	 * @Description 根据消息ID查询所有接收用户信息
	 * @param messageId
	 * @return
	 * @author DHL
	 * @date 2021年7月15日 下午2:06:07
	 */
	List<TwbUserDto> listMessageReceivorUsers(String messageId);

	/**
	 * @Title deleteMessageReceivorByMessageId
	 * @Description 根据消息ID删除发送者记录
	 * @param messageId
	 * @return
	 * @author DHL
	 * @date 2021年7月15日 下午3:11:17
	 */
	boolean deleteMessageReceivorByMessageId(String messageId);

	/**
	 * @Title searchUserMessageNum
	 * @Description 查询用户待阅消息数
	 * @param messageReceivor
	 * @return
	 * @author DHL
	 * @date 2021年7月16日 上午10:46:54
	 */
	public int searchUserMessageNum(String projectId, String userId, String readStatus);
}
